package com.xzcedu.outputstream_;

import java.io.*;

/**
 * @author 徐州城
 * @version 1.0
 */
public class FileCopy {
    public static void main(String[] args) {
        //完成 文件拷贝，将 e:\\zhongjie.jpg 拷贝到f:\\
        //思路分析
        //1. 创建文件的输入流，将文件读入到程序
        //2. 创建文件的输出流，将读取到的文件数据，写入到指定位置.
        //3. 在完成程序时，应该是读取部分数据，就写入到指定文件，这里使用循环操作

        String srcFilePath = "e:\\zhongjie.jpg";
        String destFilePath = "f:\\zhongjie.jpg";
        FileInputStream input = null;
        FileOutputStream output = null;

        try {
            input = new FileInputStream(srcFilePath);
            output = new FileOutputStream(destFilePath);
            //定义一个字节数组，提高读取效果
            byte[] buf = new byte[1024];
            int readLen = 0;
            while ((readLen = input.read(buf)) != -1) {
                //读取到后，就写入到文件 通过output
                //即，是一边读，一边写
                output.write(buf, 0, readLen);//一定要使用这个方法
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {

            try {
                //关闭输入流和输出流，释放资源
                input.close();
                output.close();
                System.out.println("关闭成功...");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        //Reader
        //Writer
    }
}
